import axios from "axios";

export const baseURL = "http://192.168.81.51:8090/iserver/services/";

// 1、创建一个axios实例
const instance = axios.create({
    // axios配置信息，常用配置：baseURL、timeout
    baseURL,
    timeout: 5000
});

// 2、请求拦截器
instance.interceptors.request.use(config => {
    return config;
}, error => {
    // 拦截失败
    return Promise.reject(error);
});

// 3、响应拦截器
instance.interceptors.response.use(response => {
    // 3.1 剥离无效数据
    console.log("请求响应结果：", response.data);
    return response.data;
}, error => {
    // 3.2 处理错误
    // 根据状态码，判断处理类型
    // error.response && error.response.status === 401)
    console.log("请求响应错误：", error);

    return Promise.reject(error);
});

/**
 * 请求工具：发送请求
 * @param url 请求的url
 * @param method 请求的方式：get、post、put、delete
 * @param submitData 请求时携带的参数
 */
export default function sendRequest(url, method, submitData) {
    return instance({
        url,
        method,
        [method.toLowerCase() === "get" ? "params" : "data"]: submitData
    });
};

/**
 * 发送get请求
 * @param url 请求的服务地址
 * @param submitData 请求携带的数据
 * @returns {AxiosPromise}
 */
export function get(url, submitData) {
    return sendRequest(url, "get", submitData);
}

/**
 * 发送post请求
 * @param url 请求的服务地址
 * @param submitData 请求携带的数据
 * @returns {AxiosPromise}
 */
export function post(url, submitData) {
    return sendRequest(url, "post", submitData);
}